import java.util.LinkedList;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import java.util.ListIterator;
import java.util.Collections;
public class main {
public static void main(String[] args){
	
	
	
	przedzial pr = new przedzial(0,7);
	
//	
//	osobnik oso = new osobnik(pr,3.6);
//	osobnik oso1 = new osobnik(pr,2.5);
//
//	osobnik[] offspring;
//	offspring = 	oso.crossover(oso1);
//	for(int i =0 ;i< offspring.length;i++){
//		System.out.print(offspring[i]);
//		offspring[i].mutate(0.5);
//		System.out.println("<->" + offspring[i]);
//	}
	double init[] = new double[10];
	init[0] = 2.07;
	init[1] = 1.3;
	init[2] = 2.002;
	init[3] = 6.6;
	init[4] = 6.5;
	init[5] = 1.3;
	init[6] = 3.02;
	init[7] =0.4 ;
	init[8] = 7.0;
	init[9] = 0.2;
//	algorithm alg = new algorithm(0.0,7.0,0.0,3,init);
//	
//	double mut = 0.0100000;
//	//populacja poop = new populacja(init, pr);
//	populacja poop = alg.getPopulation();
//	poop.recombination();
//	//poop.mutateWithProbability(mut);
//	poop.evaluate();
//	poop.selection();
//	poop.evaluate();
//	poop.recombination();
//	poop.mutateWithProbability(mut);
//	poop.evaluate();
//	poop.selection();
//	poop.evaluate();
//	poop.recombination();
//	poop.mutateWithProbability(mut);
//	poop.evaluate();
//	poop.selection();
//	poop.evaluate();
//////	poop.recombination();
//////	poop.evaluate();
//////	poop.selection();
//////	poop.evaluate();
//////	poop.recombination();
//////	poop.evaluate();
//////	poop.selection();
//////	poop.evaluate();
//	Collections.sort(poop.getPopul(), osobnik.OffspringIntSort);
//	ListIterator<osobnik> it = poop.getPopul().listIterator();
//	while(it.hasNext()){
//		System.out.println(it.next());
//	}
	
	osobnik best;
	algorithm alg = new algorithm(0.0,7.0,0.02,100,init);
	best = alg.run();
	alg.printCSVLog("./log.csv");
	System.out.println(best);
//	int tm = 10;
//	int gr = pr.binToGray(tm); 
//	System.out.println(gr);
//	System.out.println(pr.grayToBin(gr));
	//System.exit(0);
}
}
